package com.ruoyi.assets.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.assets.domain.StateAsset;
import com.ruoyi.assets.domain.dto.StateAssetQueryDto;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * 资产服务接口
 * 
 * @author ruoyi
 */
public interface IStateAssetService extends IService<StateAsset> {
    
    /**
     * 查询资产列表
     * 
     * @param queryDto 查询条件
     * @return 资产列表
     */
    List<StateAsset> selectStateAssetList(StateAssetQueryDto queryDto);
    
    /**
     * 通过ID查询资产
     * 
     * @param id 资产ID
     * @return 资产信息
     */
    StateAsset selectStateAssetById(Long id);
    
    /**
     * 新增资产
     * 
     * @param stateAsset 资产信息
     * @return 结果
     */
    boolean insertStateAsset(StateAsset stateAsset);
    
    /**
     * 修改资产
     * 
     * @param stateAsset 资产信息
     * @return 结果
     */
    boolean updateStateAsset(StateAsset stateAsset);
    
    /**
     * 批量删除资产
     * 
     * @param ids 需要删除的资产ID
     * @return 结果
     */
    boolean deleteStateAssetByIds(List<Long> ids);
    
    /**
     * 删除资产信息
     * 
     * @param id 资产ID
     * @return 结果
     */
    boolean deleteStateAssetById(Long id);
    
    /**
     * 批量审核资产
     * 
     * @param ids 资产ID列表
     * @param auditStatus 审核状态
     * @return 结果
     */
    boolean batchAuditStateAsset(List<Long> ids, Integer auditStatus);
    
    /**
     * 导入资产数据
     *
     * @param file 导入文件
     * @param updateSupport 是否更新已存在数据
     * @return 结果
     */
    String importStateAsset(MultipartFile file, boolean updateSupport);
    
    /**
     * 导出资产数据
     *
     * @param response 响应
     * @param queryDto 查询条件
     */
    void exportStateAsset(HttpServletResponse response, StateAssetQueryDto queryDto);
    
    /**
     * 获取资产统计数据
     * 
     * @return 资产统计数据
     */
    Map<String, Object> getAssetStatistics();
} 